#include "Thread.hpp"

using namespace wxd;
#include <unistd.h>
#include <vector>
// int main()
// {
//     Thread t([]()
//              {
//         int cnt = 5;
//         char buffer[64];
//         pthread_getname_np(pthread_self(),buffer,sizeof(buffer));
//         while(cnt--)
//         {
//             std::cout<<"我是新线程，我的名字是："<<buffer<<std::endl;
//             sleep(1);
//         }
//     });
//     // t.Detach();
//     t.start();
//     t.join();
//     sleep(3);
//     //t.stop();
//     sleep(10);

//     return 0;
// }

int main()
{
    auto routine = []()
    {
        int cnt = 5;
        char buffer[64];
        pthread_getname_np(pthread_self(), buffer, sizeof(buffer));
        while (cnt--)
        {
            std::cout << "我是新线程，我的名字是：" << buffer << std::endl;
            sleep(1);
        }
    };


    std::vector<Thread*> threads;
    for (int i = 0; i < 3; i++)
    {
        Thread* new_thread = new Thread(routine);
        new_thread->start();
        threads.emplace_back(new_thread);
        // sleep(1);
    }


    //一个一个等待
    for(int i = 0; i < threads.size();i++)
    {
        threads[i]->join();
    }
    return 0;
}